//package com.ruoyi.oar.api.util;
//
//import com.alibaba.fastjson.JSONArray;
//import com.ruoyi.common.exception.ServiceException;
//import com.ruoyi.common.sms.SmsDTO;
//import com.ruoyi.common.sms.SmsType;
//import com.ruoyi.common.utils.DateUtils;
//import com.ruoyi.common.utils.ToolUtil;
//import com.ruoyi.common.utils.bean.BeanUtils;
//import com.ruoyi.common.utils.spring.SpringUtils;
//import com.ruoyi.oar.domain.dto.OarSmsDTO;
//import com.ruoyi.oar.service.OarSmsService;
//import com.ruoyi.system.service.ISysConfigService;
//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
//
///**
// * @author 中安科技
// */
//public class SmsSendUtil {
//
//    /**
//     * 短信service
//     */
//    private static OarSmsService oarSmsService;
//
//    /**
//     * 短信service
//     */
//    private static ISysConfigService configService;
//    /**
//     * 线程service
//     */
//    private static ThreadPoolTaskExecutor threadPoolTaskExecutor;
//
//    /**
//     * 线程
//     */
//    public static OarSmsService oarSmsService() {
//        if (null == oarSmsService) {
//            oarSmsService = SpringUtils.getBean(OarSmsService.class);
//        }
//        return oarSmsService;
//    }
//
//    /**
//     * 线程
//     */
//    public static ThreadPoolTaskExecutor threadPoolTaskExecutor() {
//        if (null == threadPoolTaskExecutor) {
//            threadPoolTaskExecutor = SpringUtils.getBean(ThreadPoolTaskExecutor.class);
//        }
//        return threadPoolTaskExecutor;
//    }
//
//    /**
//     * 获取配置表
//     */
//    public static ISysConfigService getConfigService() {
//        if (null == configService) {
//            configService = SpringUtils.getBean(ISysConfigService.class);
//        }
//        return configService;
//    }
//
//    /**
//     * 发送创建商家账户信息短信
//     *
//     * @param smsDTO 短信入参实体
//     */
//    public static void sendSellerAdd(SmsDTO smsDTO) {
//        //threadPoolTaskExecutor().execute(() -> {
//        //    SmsResultDTO smsResultDTO = SmsUtil.sendMessage(SmsType.SELLER_ADD.getCode(), smsDTO.getLegaltel());
//        //    //设置短信类型
//        //    smsDTO.setMessageType(SmsType.SELLER_ADD.getName());
//        //    //短信入库
//        //    insertMessage(smsResultDTO, smsDTO);
//        //});
//    }
//
//    /**
//     * 企业信息通知审核民警(该派出所所有民警发短信)
//     *
//     * @param smsDTO 短信入参实体
//     */
//    public static void sendHouseAdd(SmsDTO smsDTO) {
//        if (ToolUtil.isEmpty(smsDTO.getIndustryTypeName())) {
//            throw new ServiceException("行业类型不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getCompanyName())) {
//            throw new ServiceException("单位名称不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getSendPhone())) {
//            throw new ServiceException("发送的手机号不能为空");
//        }
//        //添加参数
//        JSONArray jsonParams = new JSONArray();
//        jsonParams.add(smsDTO.getIndustryTypeName());
//        jsonParams.add(smsDTO.getCompanyName());
//        //入参参数
//        smsDTO.setJsonParams(jsonParams.toJSONString());
//        //设置短信类型
//        smsDTO.setMessageType(SmsType.HOUSE_ADD.name());
//        smsDTO.setType(1);
//        insertMessage(smsDTO);
//    }
//
//    /**
//     * 民警审核结果通知企业(底下所有用户发短信)
//     *
//     * @param smsDTO 短信入参实体
//     */
//    public static void sendPoliceReview(SmsDTO smsDTO) {
//        if (ToolUtil.isEmpty(smsDTO.getIndustryTypeName())) {
//            throw new ServiceException("行业类型不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getCompanyName())) {
//            throw new ServiceException("单位名称不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getSendPhone())) {
//            throw new ServiceException("发送的手机号不能为空");
//        }
//        //添加参数
//        JSONArray jsonParams = new JSONArray();
//        jsonParams.add(smsDTO.getIndustryTypeName());
//        jsonParams.add(smsDTO.getCompanyName());
//        //入参参数
//        smsDTO.setJsonParams(jsonParams.toJSONString());
//        //设置短信类型
//        smsDTO.setMessageType(SmsType.POLICE_REVIEW.name());
//        smsDTO.setType(1);
//        insertMessage(smsDTO);
//        //threadPoolTaskExecutor().execute(() -> {
//        //    //添加参数
//        //    JSONArray jsonParams = new JSONArray();
//        //    jsonParams.add(smsDTO.getIndustryTypeName());
//        //    jsonParams.add(smsDTO.getCompanyName());
//        //    //获取返回实体
//        //    SmsResultDTO smsResultDTO = SmsUtil.sendMessage(SmsType.HOUSE_ADD.getCode(),
//        //            jsonParams,
//        //            smsDTO.getSendPhone());
//        //    //设置短信类型
//        //    smsDTO.setMessageType(SmsType.HOUSE_ADD.name());
//        //    //短信入库
//        //    insertMessage(smsResultDTO, smsDTO);
//        //});
//    }
//
//    /**
//     * 网约房核查任务通知派出所(所有民警)
//     *
//     * @param smsDTO 短信入参实体
//     */
//    public static void sendPoliceReleaseTask(SmsDTO smsDTO) {
//        if (ToolUtil.isEmpty(smsDTO.getDeptParentName())) {
//            throw new ServiceException("公安分局名称不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getDeptName())) {
//            throw new ServiceException("派出所不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getSendPhone())) {
//            throw new ServiceException("发送的手机号不能为空");
//        }
//        //添加参数
//        JSONArray jsonParams = new JSONArray();
//        jsonParams.add(DateUtils.getDate());
//        jsonParams.add(smsDTO.getDeptParentName());
//        jsonParams.add(smsDTO.getDeptName());
//        //入参参数
//        smsDTO.setJsonParams(jsonParams.toJSONString());
//        //设置短信类型
//        smsDTO.setMessageType(SmsType.POLICE_RELEASE_TASK.name());
//        smsDTO.setType(1);
//        insertMessage(smsDTO);
//    }
//
//    /**
//     * 核查结果通知给发起民警
//     *
//     * @param smsDTO 短信入参实体
//     */
//    public static void sendPoliceReviewTask(SmsDTO smsDTO) {
//        if (ToolUtil.isEmpty(smsDTO.getTaskNo())) {
//            throw new ServiceException("核查编号不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getSendPhone())) {
//            throw new ServiceException("发送的手机号不能为空");
//        }
//        //添加参数
//        JSONArray jsonParams = new JSONArray();
//        jsonParams.add(DateUtils.getDate());
//        jsonParams.add(smsDTO.getTaskNo());
//        //入参参数
//        smsDTO.setJsonParams(jsonParams.toJSONString());
//        //设置短信类型
//        smsDTO.setMessageType(SmsType.POLICE_REVIEW_TASK.name());
//        smsDTO.setType(1);
//        insertMessage(smsDTO);
//    }
//
//    /**
//     * 通知网约房完善信息(底下所有用户推短信)
//     *
//     * @param smsDTO 短信入参实体
//     */
//    public static void sendPoliceHouseUpdate(SmsDTO smsDTO) {
//        if (ToolUtil.isEmpty(smsDTO.getHousePhone())) {
//            throw new ServiceException("网约房用户手机号(尾号四位数)不能为空");
//        }
//        if (ToolUtil.isEmpty(smsDTO.getSendPhone())) {
//            throw new ServiceException("发送的手机号不能为空");
//        }
//        //添加参数
//        JSONArray jsonParams = new JSONArray();
//        jsonParams.add(smsDTO.getHousePhone());
//        //入参参数
//        smsDTO.setJsonParams(jsonParams.toJSONString());
//        //设置短信类型
//        smsDTO.setMessageType(SmsType.POLICE_HOUSE_UPDATE.name());
//        smsDTO.setType(1);
//        insertMessage(smsDTO);
//    }
//
//    /**
//     * 保存短信内容
//     *
//     * @param smsDTO
//     */
//    private static void insertMessage(SmsDTO smsDTO) {
//        OarSmsDTO message = new OarSmsDTO();
//        BeanUtils.copyBeanProp(message, smsDTO);
//        message.setIsUsed(false);
//        oarSmsService().insertOarSms(message);
//    }
//
//    public static void main(String[] args) {
//        //sendSellerOrderNotify(SmsDTO.builder()
//        //        .orderPrice("50.34")
//        //        .orderTakeUser("李杰")
//        //        .orderTakeTel("15280010373")
//        //        .infoShopName("测试店铺")
//        //        .legaltel("17759248859")
//        //        .build());
//    }
//}
